Roles and Permissions

All contracts use OpenZeppelin's AccessControl for role management. This page lists every role across all contracts and what each role can do.

WTDToken

Role
Identifier
Admin Role
Capabilities

DEFAULT_ADMIN_ROLE

0x00

DEFAULT_ADMIN_ROLE

Claim allocations, pause/unpause, grant/revoke roles

GOVERNANCE_ROLE

keccak256("GOVERNANCE_ROLE")

DEFAULT_ADMIN_ROLE

Authorize UUPS upgrades

WTDSale

Role
Identifier
Admin Role
Capabilities

DEFAULT_ADMIN_ROLE

0x00

MULTI_SIG_ROLE

Configure rounds, activate/deactivate rounds

MULTI_SIG_ROLE

keccak256("MULTI_SIG_ROLE")

MULTI_SIG_ROLE

Set round recipients, withdraw funds (USDC/USDT/ETH), manage DEFAULT_ADMIN_ROLE

circle-info

In WTDSale, MULTI_SIG_ROLE is the admin of both itself and DEFAULT_ADMIN_ROLE. This means only MULTI_SIG_ROLE holders can grant/revoke DEFAULT_ADMIN_ROLE.

WTDVesting

Role
Identifier
Admin Role
Capabilities

DEFAULT_ADMIN_ROLE

0x00

DEFAULT_ADMIN_ROLE

Set TGE, fund rounds, create team vesting, withdraw, lock VESTING_ROLE

VESTING_ROLE

keccak256("VESTING_ROLE")

DEFAULT_ADMIN_ROLE (or LOCKED_ROLE after lock)

Create investor vesting schedules

circle-exclamation

WTDLiquidityManager

Role
Identifier
Admin Role
Capabilities

DEFAULT_ADMIN_ROLE

0x00

DEFAULT_ADMIN_ROLE

Lock/unlock positions, collect fees

Role Assignment Summary

Role
Typical Holder

DEFAULT_ADMIN_ROLE (Token)

Deployer / Admin multisig

GOVERNANCE_ROLE

Governance multisig / Timelock

DEFAULT_ADMIN_ROLE (Sale)

Operations admin

MULTI_SIG_ROLE

Team multisig wallet

DEFAULT_ADMIN_ROLE (Vesting)

Deployer / Admin multisig

VESTING_ROLE

WTDSale contract address

DEFAULT_ADMIN_ROLE (Liquidity)

Deployer / Admin multisig

User-Callable Functions (No Role Required)

These functions can be called by anyone:

Contract
Function
Description

WTDToken

burn(amount)

Burn own tokens

WTDToken

burnFrom(account, amount)

Burn tokens with allowance

WTDToken

delegate(delegatee)

Delegate voting power

WTDToken

permit(...)

Gasless approval

WTDToken

transfer(...) / transferFrom(...)

Standard ERC20 transfers

WTDSale

purchaseWithUSDC(round, amount)

Buy tokens with USDC

WTDSale

purchaseWithUSDT(round, amount)

Buy tokens with USDT

WTDSale

purchaseWithETH(round)

Buy tokens with ETH

WTDVesting

claim(round)

Claim vested investor tokens

WTDVesting

claimTGEUnlock(round)

Claim TGE unlock

WTDVesting

claimTeam(role)

Claim vested team tokens